package com.anquing.ssodemo.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

/**
 * 单个redis
 */
@Configuration
public class RedisConfig {

//    #最大连接数
//    project.redis.maxTotal=1000
//
//    #最大空闲数
//    project.redis.maxIdle=1000
//
//    #最小空闲数
//    project.redis.minIdle=500
//
//    #在borrow一个jedis实例的时候,是否要进行验证操作,如果赋值为true,则得到的jedis一定是可用的
//    project.redis.testOnBorrow=true
//
//    #在return一个jedis实例的时候,是否要进行验证操作,如果赋值为true,则放回的jedis一定是可用的
//    project.redis.testOnReturn=false
//
//    #连接耗尽的时候，是否阻塞，false会抛出异常，true阻塞直到超时。默认为true
//    project.redis.blockWhenExhausted=true
//
//    project.redis.hostName=localhost
//    project.redis.port=6379


    @Bean
    public JedisPool jedisPoolFactory(){
        //基本配置
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(1000);
        config.setMaxIdle(1000);
        config.setMinIdle(500);
        config.setTestOnBorrow(true);
        config.setTestOnReturn(false);

        JedisPool jedisPool = new JedisPool(config, "localhost", 6379, 200, null, 0);

        return jedisPool;
    }

}
